//编译器采用vs2019
#pragma once
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<cstdio>
#include<vector>
#include<cstring>
#include<string>
#include<algorithm>

using namespace std;

typedef int Status;
#define OK 1
#define ERROR 0

typedef int ElemType;
typedef struct DLNode
{
	ElemType data;
	struct DLNode* prior;
	struct DLNode* next;
}DLNode,*DLinkList;


Status CreateList(DLinkList& L);
Status DisplayList(DLinkList& L);
Status ListInsert(DLinkList& L, int i, ElemType e);
Status ListDelete(DLinkList& L, int i, ElemType& e);
ElemType ListQuery(DLinkList& L, int i);


string LinkListToStr(DLinkList L);
DLinkList StrToLinkList(string str);


DLinkList add(DLinkList L1, DLinkList L2);
DLinkList sub(DLinkList L1, DLinkList L2);
DLinkList multiply(DLinkList L1, DLinkList L2);
DLinkList divide(DLinkList L1, DLinkList L2);

void DestroyList(DLinkList L);